class UsersController < ApplicationController
  
    layout 'default'
	#  attr_accessor :multyTagResources


  # GET /users
  # GET /users.xml
  def index
    query = "SELECT * FROM users ORDER BY karma DESC;"
    @users = User.find_by_sql(query)
    @user = User.find(session[:user_id])
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @users }
    end
  end

  def start_page
    if (session[:user_id] != nil) then
      #5 first favourites of user:
      @favourites = Favorite.new.getFavorites(session[:user_id])[0..4]
      
      @user = User.find(session[:user_id])
   #   @user.multyTagResources = []
      query = "Select T.name, T.id from tags T, interests I where I.user_id = '#{@user.id}' AND T.id = I.tag_id;"
    @tags = Tag.find_by_sql(query)
    if(@tags.nil?) then
     @tags = []
    end
    end
    
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @users }
    end
  end

  # GET /users/1
  # GET /users/1.xml
  def show
    query = "Select T.name, T.id from tags T, interests I where I.user_id = '#{params[:id]}' AND T.id = I.tag_id;"
    @tags = Tag.find_by_sql(query)
    if(@tags.nil?) then
     @tags = []
    end
    @user = User.find(params[:id])
    #flash[:notice] = 'session user id ' + session[:user_id].to_s
    respond_to do |format|
      format.html # show.html.erb
    #  format.xml  { render :xml => @user }
    end
  end

  # GET /users/new
  # GET /users/new.xml
  def new
    @user = User.new
  
    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @user }
    end
  end


  # GET /users/1/edit
  def edit
    query = "Select T.name, T.id from tags T, interests I where I.user_id = '#{params[:id]}' AND T.id = I.tag_id;"
    @tags = Tag.find_by_sql(query)
    if(@tags.nil?) then
     @tags = []
    end
    @user = User.find(params[:id])
  end


  # POST /users
  # POST /users.xml
  def create
    @user = User.new(params[:user])
    @user.karma = 0
    @user.picture = ""
    
 #    Test RSA encryption:   
 #   enc = Encrypter.new
 #   puts "\n[#{@user.password}]\n\n"
 #   @user.password = enc.encrypt(@user.password)
    
    #@user.password = User.md5(@user.password) #problem: validates on md5(pass)!!!
    respond_to do |format|
      if @user.save
        session[:user_id] = @user.id
        flash[:notice] = 'User was successfully created.'
        format.html { redirect_to(@user) }
        format.xml  { render :xml => @user, :status => :created, :location => @user }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @user.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /users/1
  # PUT /users/1.xml
  def update
    @user = User.find(params[:id])

    respond_to do |format|
      if @user.update_attributes(params[:user])
        flash[:notice] = 'User was successfully updated.'
        format.html { redirect_to(@user) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @user.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /users/1
  # DELETE /users/1.xml
  def destroy
    @user = User.find(params[:id])
    @user.destroy

    respond_to do |format|
      format.html { redirect_to(users_url) }
      format.xml  { head :ok }
    end
  end


#   def incrementKarma(grade)
#     
#     karma += grade
#     flash[:notice] = "ok"
#     self.save
#   end

  
 
  
end
